﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace YuanRegression.Models
{
    /// <summary>
    /// 工具类，用于处理输入输出
    /// </summary>
    internal class MyFunctions
    {
        /// <summary>
        /// 从指定路径的文件中读取一系列值放入List<double>中
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public static List<double> ListReadTxt(string path)
        {
            if (File.Exists(path))
            {
                List<double> list = new List<double>();
                //可以用TextReader，只能读文本文件，但是效率高     StreamReader能读二进制文件
                //存在关闭问题，using可以自动关闭using的变量，作内存回收
                //比用tr.Close()更好
                //相当于C++中的 dispose
                using (TextReader tr = File.OpenText(path))
                {
                    //ReadToEnd是单向的，指针不能往回送
                    string str = tr.ReadToEnd();
                    var ss = str.Split(' ');
                    //把string代码转到list LINQ方法
                    list = ss.Select(m=>double.Parse(m)).ToList();
                    return list;
                }
            }
            else
                throw new Exception($"数据文件{path}不存在");
        }


    }
}
